<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>

    /* 遍历数组 pushed ，将 pushed  的每个元素依次入栈；
每次将 pushed  的元素入栈之后，如果栈不为空且栈顶元素与 popped 的当前元素相同，则将栈顶元素出栈，
同时遍历数组 popped\textit{ popped } popped，直到栈为空或栈顶元素与 popped  的当前元素不同。
遍历数组 pushed  结束之后，每个元素都按照数组 pushed  的顺序入栈一次。
如果栈为空，则每个元素都按照数组 popped  的顺序出栈，返回 true 。
如果栈不为空，则元素不能按照数组 popped  的顺序出栈，返回 false
*/

    var validateStackSequences = function (pushed, popped) {
      const stack = [];
      const n = pushed.length;
      for (let i = 0, j = 0; i < n; i++) {
        stack.push(pushed[i]);
        while (stack.length && stack[stack.length - 1] == popped[j]) {
          stack.pop();
          j++;
        }
      }
      return stack.length === 0;
    };
    console.log(validateStackSequences(pushed = [1, 2, 3, 4, 5], popped = [4, 5, 3, 2, 1]))
  </script>
</body>

</html>